package co.gov.medellin.ssti.sub.model.service;

import java.util.Collection;
import java.util.List;

import co.gov.medellin.ssti.sub.model.vo.SedeVO;
import co.gov.medellin.ssti.sub.model.vo.UsuarioxSedeVO;

public interface SedeService {
	/**
	 * 
	 * @return
	 * 
	 */
	List<SedeVO> loadAllSedes();

	/**
	 * 
	 * @param criterea
	 * @return
	 */
	Collection<UsuarioxSedeVO> findUsuarioxSede(UsuarioxSedeVO criterea);

	/**
	 * 
	 * @param nombreSede
	 * @return
	 */
	Collection<SedeVO> findSedes(String nombreSede);

	/**
	 * 
	 * @param strCodeSede
	 * @return
	 */
	String findNameByCode(String strCodeSede);

	/**
	 * 
	 * @param codeUser
	 * @param codeSubpro
	 * @param groupUserName
	 * @param areaUser
	 * @return
	 */
	Collection<SedeVO> findTotalSedebyUser(Long codeUser, Long codeSubpro,
			String groupUserName, Long areaUser);

	/**
	 * 
	 * @param codeUser
	 * @param codeSubpro
	 * @param groupUserName
	 * @param areaUser
	 * @param codeSede
	 * @return
	 */
	Collection<SedeVO> findTotalSedebyUser(Long codeUser, Long codeSubpro,
			String groupUserName, Long areaUser, String codeSede);

	/**
	 * 
	 * @param codeSub
	 * @return
	 */
	Collection<SedeVO> findSedesAsociadas(String codeSub);

	/**
	 * 
	 * @return
	 */
	Collection<SedeVO> findSedes();

	int desactivarSede(SedeVO sedeVO);

	int insert(SedeVO sedeVO);

	int update(SedeVO sedeVO);
}
